<?php 

class Chat{
	private $usuario;
	private $lista;
	
	function Chat(){
		$this->usuario=$_SESSION["usuario"];
	}
	
	function getListaUsuarios($ids){
		$ids=explode(",",$ids);
		$where=($this->usuario["grupo"]!=1)?"(empresa='{$this->usuario['empresa']}' AND id<>{$this->usuario['id']}) OR grupo=1":"id<>{$this->usuario['id']}";
		$rs=DB::fetchTodos("id,nome,empresa,status","usuarios",$where,null,"status DESC");
		
		foreach ($rs as $v){
			$novamensagem="";
			
			foreach ($ids as $ks => $vs){
				if($vs==$v['id']){
					$novamensagem="<img style='float: right;margin-top: 2px;' src='chat/images/carta.png' />";
				}
			}
			
			$status=($v["status"]==1)?"online.png":"offline.png";
			$class=($novamensagem)?"nova-mensagem":null;
			
			$lista.="<div onclick=".'"'."abreUsuario({$v['id']},'{$v['nome']}',this);".'"'." class='usuario-item $class'>
				{$v["nome"]} 
				<img style='float: right;margin-left: 10px;margin-top: 2px;margin-right: 20px;' src='chat/images/$status' />
				$novamensagem
				</div>";
		}
		
		return $lista;
	}
	
	function getMensagem($destinatario){
		$rs=DB::fetchTodos("id,id_destinatario,id_remetente,mensagem","chat","id_remetente=$destinatario AND id_destinatario={$this->usuario["id"]} AND novo=1");
	
		foreach ($rs as $v){
			$lista.="<div class='usuario-mensagem'>{$v["mensagem"]}</div>";
			DB::atualizar(array("novo"=>0),"id={$v['id']}","chat");
		}
		
		return $lista;
	}
	
	function salvarMensagem($mensagem,$destinatario){
		DB::salvar(array("id_destinatario"=>$destinatario,"id_remetente"=>$this->usuario["id"],"mensagem"=>$mensagem,"data"=>date("d/m/Y h:i"),"novo"=>1),"chat");
	}
	
	function verificarMensagem(){
		$rs=DB::fetchTodos("id_remetente","chat","id_destinatario={$this->usuario['id']} AND novo=1");
		
		foreach ($rs as $v){
			$lista.="{$v["id_remetente"]},";
		}
		
		return substr($lista,0,strlen($lista)-1);
	}
	
	function mostrarHistorico($destinatario){
		$rs=DB::fetchTodos("*","chat,usuarios usu","((id_destinatario={$destinatario} AND id_remetente={$this->usuario['id']}) OR (id_remetente={$destinatario} AND id_destinatario={$this->usuario['id']})) AND id_remetente=usu.id");
		
		foreach ($rs as $v){
			$nome=($v["nome"]==$this->usuario["nome"])?"eu":$v["nome"];
			$this->setUsuarioHtml($nome,$v["mensagem"],$v["data"]);
		}
		
		return $this->lista;
	}
	
	function setUsuarioHtml($nome,$mensagem,$data=null){
		$data=($data)?"($data)":null;
		$this->lista.="<div class='usuario-mensagem'>$nome:$mensagem-$data</div>";
	}
	
	function getNovaMensagem($destinatario){
		$rs=DB::fetchTodos("*","chat","id_remetente=$destinatario AND id_destinatario={$this->usuario['id']} AND novo=1");
		
		foreach ($rs as $v){
			$lista.="<div class='usuario-mensagem'>{$v["mensagem"]}</div>";
			DB::atualizar(array("novo"=>0),"id={$v['id']}","chat");
		}
		
		return $lista;
	}
	
	function ficarOffline(){
		DB::atualizar(array("status"=>0),"id={$this->usuario['id']}","usuarios");
	}
	
	function ficarOnline(){
		DB::atualizar(array("status"=>1),"id={$this->usuario['id']}","usuarios");
	}
	
	function getStatusUsuario(){
		$rs=DB::find($this->usuario["id"],"usuarios");
		
		return $rs["status"];
	}
}

?>